python基础第七节

8.1 if-else语句

# pass 是空语句,是为了保持程序结构的完整性
# pass 不做任何事情,一般用做占位语句

if 判断条件:
    # 当条件成立时, 需要做的事情.
    pass
else:
    # 当条件不成立时, 需要做的事情.
    pass

# 什么叫做条件成立呢.
# 条件成立即 bool(判断条件的运算结果)为True. 即为条件成立.
  1. 不要忘记写判断条件后的冒号. 且一定要是英文冒号.
  2. if语句下的代码, 要缩进一次. 缩进一次是4个空格.
  3. else不是必须写的. 如果条件不成立时没有要做的事情, 可以不写.

# 编写一个高考学校的录取系统.
# 定义一个变量表示考试考了多少分.
# 如果分数超过690分, 就可以去读清华大学.
# 如果分数没有达到此分数, 就不能去读了.

score = int(input("请问你考了多少分?"))


if score > 690:  # bool(score > 690)
    print('恭喜你, 可以报考清华大学了')
else:
    print('很可惜, 还需要继续努力.')

8.2 if-elif-else语句

if 判断条件1:
    # 当条件1成立时, 需要做的事情.
    pass
elif 判断条件2:
    # 当条件2成立时, 需要做的事情.
    pass
elif 判断条件3:
    # 当条件3成立时, 需要做的事情.
    pass
elif 判断条件4:
    # 当条件4成立时, 需要做的事情.
    pass
else:
    # 当以上条件都不成立时, 需要做的事情.
    pass
  1. elif语句可以写多个.
  2. 条件判断是互斥且有序的.
    • 满足条件1, 将不会执行2,3,4.
    • 不满足条件1, 才会进入条件2, 如果条件2满足, 则不会执行3,4. 依次类推.
  3. else不是必须写的,
# 程序接收一个数, 为学生考试的分数. 给学生考试的分数分档次.
# (1)100: 则提示满分.
# (2)90-100: 优秀
# (3)80-90: 良好
# (4)70-80: 不错
# (5)60-70: 及格
# (6)60以下: 不及格

score = int(input("请问你考了多少分?"))
# 这种需求使用if + elif是最合适的.
if score == 100:
    print("恭喜你, 考了满分")
elif 90 <= score:
    print("恭喜你, 成绩优秀")
elif 80 <= score:
    print("恭喜你, 成绩良好")
elif 70 <= score:
    print("恭喜你, 成绩不错")
elif 60 <= score:
    print("及格, 需要在努力")
else:
    print("不及格")

恭喜你, 考了满分

8.3 if语句的嵌套

在很多场景下, 会有满足前提条件下, 再进行二次判断的多层次需求。

而不仅仅是多个条件并列。

嵌套if语句的关键在于缩进. 通过缩进来决定多个if之间的层级关系。

if 判断条件1:
    # 满足条件1做的事情.
    pass
    if 判断条件2:
        # 满足条件2做的事情
        pass

# 考试分3科目: 语文, 数学, 英语. 每一科目满分150.单科及格分为90. 满分450.
# 有一所学校. 招生条件是分数达到360. 且有附加条件.
# 这所学校呢, 理科专业特别强. 所以数学, 需要单科达到130以上, 且总分需要360.
# 特例: 如果数学满分, 那么总分可以减少20即可录取.
# 语文跟英语不限制.
# 现在需要写一个程序来判断是否能够读这个学校.

chinese = int(input('语文考了多少分:'))
maths = int(input('数学考了多少分:'))
english = int(input('英语考了多少分:'))

total = chinese + maths + english

if maths == 150:
    if total >= 340:
        print('恭喜你以数学满分的成绩录取')
    else:
        print('很可惜, 语文英语还需努力.')
elif maths >= 130:
    if total >= 360:
        print('恭喜你已经被录取')
    else:
        print('很可惜, 语文英语还需加倍努力.')
else:
    if total >= 360:
        print("很可惜, 数学还需要努力")
    else:
        print("可惜, 你没有考上.")




if total >= 360:
    if maths >= 130:
        print('恭喜你, 已经被录取')
    else:
        print("很可惜, 你没有被录取")
elif total >= 340:
    if maths == 150:
        print('恭喜你以数学满分的成绩录取')
    else:
        print('很可惜. 还差一点点.')
else:
    print('你没有被录取')

恭喜你以数学满分的成绩录取
恭喜你, 已经被录取

8.4 条件表达式

variable = <expr1> if <condition> else <expr2>

这与 if 语句形式不同, 因为它不是程序执行流程的控制结构,而更像是定义表达式的运算符。

这种语法, 条件表达式的中间他首先会评估
<conditon>。如果为 True, 则表达式返回值为 <expr1>;否则, 表达式返回值为<expr2>

# 需求是求出a, b两个数中较大的那一个.

# 用if - else 语句:
a = 3
b = 4
if a > b:
   max_num = a
else:
   max_num = b
print(max_num)

# 用条件表达式:

max_num = a if a > b else b

print(max_num)

# python 中有max()函数,可以求最大值

max_num = max(a,b)  # 求最小就是min函数
print(max_num)

4
4
4

8.5 作业

import random
'''
1. 程序接收一个正整数, 判断这个数是否是回文数.(设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数, 如1234321)
2. 程序接收一个正整数, 判断这个数是否是偶数.
3. 有一个1-10之间的幸运数字, 用户有3次机会去猜这个幸运数字, 3次以内猜中, 则获得7折折扣, 3次猜不中, 则输出”很遗憾, 您没有猜中.”
'''

# # 1

num_str = input("请输入一个正整数")

num_str_fan = num_str[::-1]

if num_str == num_str_fan:
    print(f"{num_str}是回文数")
else:
    print(f"{num_str}不是回文数")

# 2
if int(num_str)%2 == 0:
    print(f"{num_str}是偶数")
else:
    print(f"{num_str}不是偶数")




# 3
num = random.randint(1, 10)
num_guess1 = int(input("请猜测幸运数字"))

if num_guess1 == num:
    print(f"恭喜,你获得7折折扣, 幸运数字就是{num}!")
else:
    num_guess2 = int(input("很遗憾,您没有猜中,请再次猜测"))
    if num_guess2 == num:
        print(f"恭喜,你获得7折折扣,幸运数字就是{num}!")
    else:
        num_guess3 = int(input("很遗憾,您没有猜中,请再次猜测"))
        if num_guess3 == num:
            print(f"恭喜,你获得7折折扣,幸运数字就是{num}!")
        else:
            print("很遗憾, 您没有猜中.")


# 优化3
num = random.randint(1, 10)
num_guess1 = int(input("请猜测幸运数字"))

if num_guess1 == num:
    print(f"恭喜,你获得7折折扣, 幸运数字就是{num}!")
elif int(input("很遗憾,您没有猜中,请第二次猜测")) == num:
    print(f"恭喜,你获得7折折扣,幸运数字就是{num}!")
elif int(input("很遗憾,您没有猜中,请最后猜测")) == num:
    print(f"恭喜,你获得7折折扣,幸运数字就是{num}!")
else:
    print("很遗憾, 您没有猜中,机会用完了.")


10不是回文数
10是偶数
很遗憾, 您没有猜中.
恭喜,你获得7折折扣,幸运数字就是7!

Relative Article

python 语句